package cn.xiaopengstack.domain.strategy.service.raffle;

import cn.xiaopengstack.domain.strategy.model.entity.RaffleAwardEntity;
import cn.xiaopengstack.domain.strategy.model.entity.RaffleFactorEntity;
import cn.xiaopengstack.domain.strategy.model.valobj.RuleWeightVO;
import cn.xiaopengstack.domain.strategy.service.rule.chain.factory.DefaultLogicChainFactory;

import java.util.List;

/**
 * @author jiangyangang
 * 奖品策略接口
 */
public interface IRaffleStrategy {

    /**
     * 执行抽奖
     * @param raffleFactorEntity 抽奖因子
     * @return 抽到的奖品
     */
    RaffleAwardEntity doRaffle(RaffleFactorEntity raffleFactorEntity);

    /**
     * 查询活动下策略的奖品权重信息
     * @param activityId
     * @return
     */
    List<RuleWeightVO> queryAwardRuleWeightByActivityId(Long activityId);
}
